CROSS-REFERENCES
Related Applications: This application is one of four U.S. patent applications being filed simultaneously, all of which are commonly assigned, namely:
Ser. No. 07/970,335, filed Oct. 27, 1992, METHOD OF DYNAMICALLY CANCELING A DB2 THREAD, by David L. Janicek; PA1 Ser. No. 07/970,337, filed Oct. 27, 1992, METHOD OF DYNAMICALLY EXPANDING OR CONTRACTING A DB2 BUFFER POOL, David L. Janicek; PA1 Ser. No. 07/970,334, field Oct. 27, 1992, now abandoned, METHOD OF DYNAMICALLY EXPANDING A DB2 EDM POOL, David L. Janicek; PA1 Ser. No. 07/970,336, filed Oct. 27, 1992, METHOD OF DYNAMICALLY ADDING OR REMOVING DB2 LOGS, by Anouar Jamoussi and David L. Janicek.
Microfiche Appendix: The microfiche appendix to this specification having 3 frames and 215 microfiche contains source code listings of a series of copyrighted computer program routines that are the property of the assignee of this application. Permission is granted to make copies of the appendix and its contents solely in the course of creating facsimile copies of a patent issuing on this application and for no other purpose. All other rights under copyright or similar law are reserved.
Glossary and Bibliography: A general-purpose glossary of certain terms of art and a list of potentially helpful references for further reading are set out as an appendix to the printed specification of this application. References are indicated in the text of the specification in conventional fashion, e.g., "[Smith]" might indicate an article by Smith. Both the glossary and the list of references are intended solely as an aid to understanding the invention and not as limiting the scope of the inventive subject matter defined in the claims.
The Problem of Noncancellable DB2 Threads
This invention relates to the use of database software such as the well-known DATABASE 2 database software distributed by IBM Corporation, commonly referred to colloquially in the art as "DB2." As is well known to those of ordinary skill, generally speaking DB2 operates as a subsystem in a computer system that itself is operating under the IBM MVS operating system software.
The term "thread" has a specific and well-known meaning in the art. DB2's functions are typically accessed by other MVS subsystems via one or more information connections or attachments between DB2 and another MVS subsystem; each such connection is referred to as a thread. See generally [RanSeh] at pages 20-21; see also [RanSeh] at chapter 11, especially pages 245-250, for a discussion of threads between DB2 and a CICS application program.
FIG. 1 provides a convenient (and greatly simplified) illustration of this meaning. As shown in the figure, a timesharing application program labeled "DB2 application," running under IBM's Time Sharing Option (TSO) subsystem, communicates with a user via the IBM VTAM communications management subsystem. The DB2 application in turn can read from and write to a database in DASD data storage by directing requests for services (typically Structured Query Language or SQL requests) to DB2. The thread used for this purpose, shown in FIG. 1 as a simple two-way connection, actually takes the form of a complex set of control blocks by which DB2 and the DB2 application can exchange information about the requests.
DB2 does not provide a user-accessible facility whereby a thread can be selectively terminated, e.g., in the event of a program malfunction. For example, a transaction between an application program and DB2 and making use of the thread can sometimes misbehave, e.g., by getting into an infinite loop, accessing data that was not intended to be accessed, etc. If as commonly happens the thread in question is holding a DB2 latch (i.e., if the thread has exclusive access to a DB2 resource), other threads cannot access the resource and the DB2 installation can be effectively crippled. DB2 does not provide the system administrator a way to intervene to terminate or cancel the thread in such an event.